package com.project.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.sunchenbin.mybatis.actable.annotation.Column;
import com.gitee.sunchenbin.mybatis.actable.annotation.Table;
import com.gitee.sunchenbin.mybatis.actable.constants.MySqlTypeConstant;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户基本信息
 * @author
 */
@Data
@ApiModel(value = "用户基本信息")
@TableName(value = "cms_user")
@Table(name = "cms_user", comment = "用户基本信息")
public class CmsUser implements Serializable {
    /**
     * 用户ID
     */
    @TableId
    @ApiModelProperty(value = "用户ID")
    @Column(type= MySqlTypeConstant.BIGINT, comment = "用户ID", length = 11, isKey = true, isAutoIncrement = true,isNull = false)
    private Long baseUserId;

    /**
     * 上级ID
     */
    @ApiModelProperty(value = "上级ID")
    @Column(comment = "上级ID")
    private Long parentId;

    /**
     * 邀请码
     */
    @ApiModelProperty(value = "邀请码")
    @Column(comment = "邀请码")
    private String invitationCode;

    /**
     * 用户类型（0:普通用户,1:回收员）
     */
    @ApiModelProperty(value = "用户类型（0:普通用户,1:回收员）")
    @Column(comment = "用户类型（0:普通用户,1:回收员）", defaultValue = "0")
    private Integer userType;

    /**
     * 后台用户类型（0:普通用户,1:后台管理员）
     */
    @ApiModelProperty(value = "后台用户类型（0:普通用户,1:后台管理员）")
    @Column(comment = "后台用户类型（0:普通用户,1:后台管理员）", defaultValue = "0")
    private Integer pcUserType;

    /**
     * 任务数
     */
    @ApiModelProperty(value = "任务数")
    @Column(comment = "任务数")
    private Integer taskNumber;

    /**
     * 直属会员数
     */
    @ApiModelProperty(value = "直属会员数")
    @Column(comment = "直属会员数")
    private Integer directMember;

    /**
     * 支付密码
     */
    @ApiModelProperty(value = "支付密码")
    @Column(comment = "支付密码")
    private String payPassword;

    /**
     * 真实姓名
     */
    @ApiModelProperty(value = "真实姓名")
    @Column(comment = "真实姓名")
    private String realName;

    /**
     * qq号码
     */
    @ApiModelProperty(value = "qq号码")
    @Column(comment = "qq号码")
    private String qqNumber;

    /**
     * 微信openId
     */
    @ApiModelProperty(value = "微信openId")
    @Column(comment = "微信openId")
    private String wxOpenId;

    /**
     * 昵称
     */
    @ApiModelProperty(value = "昵称")
    @Column(comment = "昵称")
    private String wxNickname;

    /**
     * 性别（ 0 未知 1男性 2女性）
     */
    @ApiModelProperty(value = "性别（ 0 未知 1男性 2女性）")
    @Column(comment = "性别（ 0 未知 1男性 2女性）")
    private Integer gender;

    /**
     * 头像
     */
    @ApiModelProperty(value = "头像")
    @Column(comment = "头像")
    private String wxPortrait;

    /**
     * 个性签名
     */
    @ApiModelProperty(value = "个性签名")
    @Column(comment = "个性签名")
    private String signature;

    /**
     * 手机号码
     */
    @ApiModelProperty(value = "手机号码")
    @Column(comment = "手机号码", isNull = false)
    private String mobile;

    /**
     * 密码
     */
    @ApiModelProperty(value = "密码")
    @Column(comment = "密码")
    private String password;

    /**
     * 最后一次登录时间
     */
    @ApiModelProperty(value = "最后一次登录时间")
    @Column(comment = "最后一次登录时间", type = MySqlTypeConstant.DATETIME)
    private Date lastLoginTime;

    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    @Column(comment = "创建人")
    private Long createUser;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @Column(comment = "创建时间", type = MySqlTypeConstant.DATETIME)
    private Date createTime;

    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    @Column(comment = "修改人")
    private Long updateUser;

    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @Column(comment = "修改时间", type = MySqlTypeConstant.TIMESTAMP)
    private Date updateTime;

    /**
     * 业务状态（-1:冻结,1:正常）
     */
    @ApiModelProperty(value = "业务状态（-1:冻结,1:正常）")
    @Column(comment = "业务状态（-1:冻结,1:正常）", defaultValue = "1")
    private Integer state;

    /**
     * 状态（-1:删除,1:正常）
     */
    @ApiModelProperty(value = "状态（-1:删除,1:正常）")
    @Column(comment = "删除标志（-1:删除,1:正常）", defaultValue = "1")
    private Integer status;

    private static final long serialVersionUID = 1L;


}